﻿#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable : 6031)
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <stdbool.h>

typedef int datatype;

typedef struct hp
{
	datatype* p;
	int size;
	int num;
}hp;

void hpinit(hp* head);

void hpdestroy(hp* head);

void hppush(hp* head, datatype x);

void hppop(hp* head);

bool hpempty(hp* head);

datatype hptop(hp* head);

int hpsize(hp* head);

void hpjump(datatype* p, int child);

void hpdown(datatype* p, int size, int parent);

void swap(datatype* pa, datatype* pb);